using System;
using System.Diagnostics;
using SG.Sys.Console.Cntrl;
using SG.Sys.Console.CommandProcessing;

namespace SG.Sys.Console.Process
{
    public interface IProcessWrapper : IClosable
    {
        event EventHandler<LineOutputEvent> OnOutput;
        ProcessStartInfo StartInfo { get; }
        System.Diagnostics.Process Process { get; }
        char PromptChar { get; }
        string Title { get; }
        int ID { get; }
        string Name { get; }
        void Start();
        StateChange SendCommand(Entry entry);
        Command ParseCommand(string cmdLine);
    }
}